<%@ page import="tmanager.*" import="java.sql.*" %>
<%@ include file="/WEB-INF/sql.jsp" %>

<%
    //Recupero dalla sessione l'oggetto professore e studente
    Professore professoreSessione = (Professore) session.getAttribute("tmanager.professore");
    Studente studenteSessione = (Studente) session.getAttribute("tmanager.studente");
    boolean isStudente = true;
    //Controllo se l'utente è uno studente
    if (studenteSessione == null) {
        isStudente = false;
    }
    boolean aggiornaMessLetto = false;
    
    //Recupero l'id del messaggio da visualizzare, verificando che sia esistente
    String idMessaggioS = (request.getParameter("idMessaggio") == null) ? "" : request.getParameter("idMessaggio").trim();
    
    //Inizializzazione variabili
    long idMessaggio = -1;
    Messaggio tempMessaggio = new Messaggio();
    
    //Se l'id messaggio non è vuoto
    if (idMessaggioS != "") {
        try {//eseguo il cast da stringa a long
            idMessaggio = Long.parseLong(idMessaggioS);
        } catch (NumberFormatException e) {
            idMessaggio = -1;
        }
        try {//Recupero il messaggio corrispondente
            tempMessaggio = messaggioFromId(messaggioFromId, idMessaggio);
            
        } catch (SQLException e) {
            session.setAttribute("tmanager.erroreTitolo", "Errore di accesso al db");
            session.setAttribute("tmanager.erroreMessaggio", "Siamo spiacenti ma si è verificato un errore nella fase di recupero messaggio. Si consiglia di riprovare più tardi.");
            response.sendRedirect("../errore.jsp");

            return;
        }

        if (isStudente) {//Controllo che l'utente (studente o professore) sia il destinatario del messaggio
            aggiornaMessLetto = tempMessaggio.getDestinatario().equals(studenteSessione.getNomeCognome());
        } else {//e imposto a true aggiornaMessLetto
            aggiornaMessLetto = tempMessaggio.getDestinatario().equals(professoreSessione.getNomeCognome());
        }

        if (aggiornaMessLetto) {//Aggiorno l'attributo già letto del messaggio a true
            try {
                registraReplyLetto(messaggioLetto, idMessaggio);
            } catch (SQLException e) {
                session.setAttribute("tmanager.erroreTitolo", "Errore di accesso al db");
                session.setAttribute("tmanager.erroreMessaggio", "Siamo spiacenti ma si è verificato un errore durante la fase di aggiornamento dei dati messaggio. Si consiglia di riprovare più tardi.");
                response.sendRedirect("../errore.jsp");

                return;
            }
        }

    } else {//Se l'id del messaggio è inesistente reindirizzo alla home
        response.sendRedirect("../index.jsp");
        return;
    }
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Pragma", "no-cache");
    response.setDateHeader("Expires", 0);

%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Visualizza Messaggio</title>
        <link rel="stylesheet" type="text/css" href="../CSS/defaultStyle.css" />
    </head>
    <body>
        <%@include file="../WEB-INF/jspf/header.jspf" %>
        <div id="corpo">
            <hr />
            <div id="corpoSx">
            <h2>Visualizza messaggio:</h2>
            <div class="modificaProfilo">
                <div id="visMessaggio">
                <fieldset>
                    <h3>Oggetto: <%= tempMessaggio.getOggetto() %></h3>
                    <p><b>Mittente: </b><%= tempMessaggio.getMittente() %></p>
                    <p><b>Destinatario: </b><%= tempMessaggio.getDestinatario() %></p>
                    <pre id="contenuto"><%= tempMessaggio.getContenuto() %></pre>
                    <p id="ricevIl"><i>Ricevuto il: </i><%= Utility.formatData(tempMessaggio.getTimestamp()) %></p>
                    <a href="../Messaggio/invioMessaggio.jsp?idMessaggio=<%= tempMessaggio.getTime() %>"><img src="../Immagini/Status-mail-replied-icon30.png"/>Rispondi</a>
                </fieldset>
                </div>
            </div>
            </div>
        </div>
        <hr />
        <%@include file="../WEB-INF/jspf/footer.jspf" %>
    </body>
</html>
